﻿Write-Host "功能：将所有文件夹移动到对应，以文件夹名前缀（中划线-前）为名称的文件夹中"
Read-Host "按 Enter 键开始"

# 记录开始时间
$startTime = Get-Date

# 初始化文件夹计数
$folderCount = 0

# 获取当前目录
$baseDir = $PSScriptRoot

# 遍历当前目录下的所有文件夹（排除脚本自身目录中的 Result 文件夹或其他不需要移动的文件夹）
Get-ChildItem -Directory | Where-Object { $_.Name -ne $PSScriptRoot.Split('\')[-1] } | ForEach-Object {
    $folderName = $_.Name

    # 判断文件夹名是否包含 "-"
    if ($folderName -like "*-*") {
        Write-Host "正在处理文件夹：$folderName"

        # 提取前缀（中划线前部分）
        $prefix = $folderName.Split("-")[0]
        $destDir = Join-Path $baseDir $prefix

        # 创建目标目录（如果不存在）
        if (!(Test-Path $destDir)) {
            New-Item -ItemType Directory -Path $destDir | Out-Null
        }

        # 移动文件夹
        Move-Item -Path $_.FullName -Destination $destDir

        # 更新计数
        $folderCount++
    }
}

# 记录结束时间并计算耗时（秒）
$endTime = Get-Date
$elapsed = ($endTime - $startTime).TotalSeconds

Write-Host "处理完成，总计处理文件夹数：$folderCount（耗时 $([math]::Round($elapsed, 3)) 秒）"
Read-Host "按 Enter 键关闭"